﻿using DocumentFormat.OpenXml.Lite.DrawingML.Base;
using DocumentFormat.OpenXml.Lite.Xml;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Xml.Schema;
using System.Xml.Serialization;

namespace DocumentFormat.OpenXml.Lite.DrawingML.Geometry.Locks
{
    [XmlRoot("cNvPicPr", Namespace = Constants.Main)]
    public class PictureLocks : XmlSerializable
    {
        [Optional]
        [XmlAttribute("noGrp", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowShapeGrouping { get; set; }

        [Optional]
        [XmlAttribute("noSelect", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowShapeSelection { get; set; }

        [Optional]
        [XmlAttribute("noRot", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowShapeRotation { get; set; }

        [Optional]
        [XmlAttribute("noChangeAspect", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowAspectRationChanging { get; set; }

        [Optional]
        [XmlAttribute("noMove", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowShapeMoving { get; set; }

        [Optional]
        [XmlAttribute("noResize", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowShapeResizing { get; set; }

        [Optional]
        [XmlAttribute("noEditPoints", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowShapePointEditing { get; set; }

        [Optional]
        [XmlAttribute("noAdjustHandles", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowShowingAdjustHandles { get; set; }

        [Optional]
        [XmlAttribute("noChangeArrowheads", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowArrowheadChanges { get; set; }

        [Optional]
        [XmlAttribute("noChangeShapeType", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowShapeTypeChanges { get; set; }

        [Optional]
        [XmlAttribute("noCrop", Form = XmlSchemaForm.Qualified)]
        public Nullable<bool> DisallowCropChanges { get; set; }

        [Optional]
        [XmlElement("extLst", Namespace = Constants.Main)]
        public ExtensionList ExtensionList { get; set; }

        public PictureLocks() { }
    }
}
